﻿Imports Control_Vuelos_BE
Imports Control_Vuelos_BL
Imports DevExpress.XtraEditors.Controls
Imports DevExpress.XtraEditors
Imports System.Text.RegularExpressions

Public Class frmAdm_Reserva
    Inherits frmBaseMantenimiento

    Private ReadOnly _propertyName As Rectangle
    ReadOnly vMaestros As New MaestrosBL()
    ReadOnly vReservaBL As New V_ReservaBL()
    Dim vReservaBE As New V_ReservaBE
    ReadOnly mPasajeroBL As New PasajeroBL()
    Dim mPasajeroBE As New M_PasajeroBE
    ReadOnly TCentroCosto As New T_CentroCostoTrabajadorBL()

    Dim tbTipoPasajero, tbMotivo, tbAnalisis, tbCuentas, tbEstado, tbLugar, tbLugarR, tbComunidad As New DataTable
    Dim stippas, scodanl, scenco1, snropri, scenco2, slugres, sestres As String
    Dim nopc As Integer = 0

    Private Sub frmAdm_Reserva_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
        SG_Control_Vuelos_Main.RibbonPageGroup1.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup2.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup3.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup4.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup5.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup6.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup7.Visible = True
        SG_Control_Vuelos_Main.RibbonPageGroup9.Visible = True
    End Sub

    Private Sub frmAdm_Reserva_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        AddHandler UcReserva1.cboTipoPasajero.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.cboAnalisis.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.cboCosto.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.cboPrioridad.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.cboCosto2.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.cboLugarReserva.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.cboEstado.Click, AddressOf cmdclickorigen
        AddHandler UcReserva1.txtNroDocumentoId.Validating, AddressOf cmdvalidDni
        AddHandler UcReserva1.GridView1.FocusedRowChanged, AddressOf CambioRegistro
        AddHandler UcReserva1.gGLENroDocumentoId.EditValueChanged, AddressOf ElegirDNI
        AddHandler UcReserva1.cboTipoPasajero.EditValueChanged, AddressOf ValidarTipoPasajero
        AddHandler UcReserva1.cboTipoPasajero.LostFocus, AddressOf cmdclickTipoPasajero

        AddHandler BarBtnAgregar.ItemClick, AddressOf RegistroNuevo
        AddHandler BarBtnModificar.ItemClick, AddressOf RegistroModificar
        AddHandler BarBtnEliminar.ItemClick, AddressOf RegistroDardeBaja
        AddHandler BarBtnGrabar.ItemClick, AddressOf RegistroGrabar
        AddHandler BarBtnCancelar.ItemClick, AddressOf RegistroCancelar
        InicializarBoton(False)
        CargarCombos()
        EstadoCajas(True)
        CargarLista()
        SLTitulo.Text = "Registro de Reservas"
        nopc = 0
    End Sub

#Region "Inicializacion"

    Private Sub CargarCombos()
        ' tipo de pasajero
        tbTipoPasajero = vMaestros.Get_TipoPasajero()
        UcReserva1.cboTipoPasajero.Properties.DataSource = tbTipoPasajero
        UcReserva1.cboTipoPasajero.Properties.DisplayMember = "NomTipoPasajero"
        UcReserva1.cboTipoPasajero.Properties.ValueMember = "CodTipoPasajero"
        UcReserva1.cboTipoPasajero.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("CodTipoPasajero", 20, "Tipo pasajero"))
        UcReserva1.cboTipoPasajero.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("NomTipoPasajero", 100, "Descripción"))
        UcReserva1.cboTipoPasajero.Properties.BestFit()
        UcReserva1.cboTipoPasajero.Properties.PopupWidth = 300
        UcReserva1.cboTipoPasajero.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboTipoPasajero.Properties.AutoSearchColumnIndex = 1

        'motivo viaje
        tbMotivo = vMaestros.Get_MotivoViaje()
        UcReserva1.cboMotivoViaje.Properties.DataSource = tbMotivo
        UcReserva1.cboMotivoViaje.Properties.DisplayMember = "desMotivo"
        UcReserva1.cboMotivoViaje.Properties.ValueMember = "codMotivo"
        UcReserva1.cboMotivoViaje.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("codMotivo", 20, "Motivo"))
        UcReserva1.cboMotivoViaje.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("desMotivo", 100, "Descripción"))
        UcReserva1.cboMotivoViaje.Properties.BestFit()
        UcReserva1.cboMotivoViaje.Properties.PopupWidth = 300
        UcReserva1.cboMotivoViaje.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboMotivoViaje.Properties.AutoSearchColumnIndex = 1

        ' contacto 
        tbAnalisis = vMaestros.Get_Analisis(" AND (codanl like '1%')")
        UcReserva1.cboNomContacto.Properties.DataSource = tbAnalisis
        UcReserva1.cboNomContacto.Properties.View.BestFitColumns()

        ' analisis 
        tbAnalisis = vMaestros.Get_Analisis("")
        UcReserva1.cboAnalisis.Properties.DataSource = tbAnalisis
        UcReserva1.cboAnalisis.Properties.View.BestFitColumns()

        ' centro de costos
        tbCuentas = vMaestros.Get_Cuentas(" AND (codcta like '9%')")
        UcReserva1.cboCosto.Properties.DataSource = tbCuentas
        UcReserva1.cboCosto.Properties.View.BestFitColumns()

        UcReserva1.cboCosto2.Properties.DataSource = tbCuentas
        UcReserva1.cboCosto2.Properties.View.BestFitColumns()

        ' lugar
        tbLugar = vMaestros.Get_LugarVuelo()
        UcReserva1.cboLugarReserva.Properties.DataSource = tbLugar
        UcReserva1.cboLugarReserva.Properties.DisplayMember = "NomLugar"
        UcReserva1.cboLugarReserva.Properties.ValueMember = "CodLugar"
        UcReserva1.cboLugarReserva.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("CodLugar", 20, "Lugar"))
        UcReserva1.cboLugarReserva.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("NomLugar", 100, "Descripción"))
        UcReserva1.cboLugarReserva.Properties.BestFit()
        UcReserva1.cboLugarReserva.Properties.PopupWidth = 300
        UcReserva1.cboLugarReserva.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboLugarReserva.Properties.AutoSearchColumnIndex = 1

        ' lugar residencia
        tbLugarR = vMaestros.Get_LugarResidencia()
        UcReserva1.cboLugarResidencia.Properties.DataSource = tbLugarR
        UcReserva1.cboLugarResidencia.Properties.DisplayMember = "NomLugar"
        UcReserva1.cboLugarResidencia.Properties.ValueMember = "CodLugar"
        UcReserva1.cboLugarResidencia.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("CodLugar", 20, "Lugar"))
        UcReserva1.cboLugarResidencia.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("NomLugar", 100, "Descripción"))
        UcReserva1.cboLugarResidencia.Properties.BestFit()
        UcReserva1.cboLugarResidencia.Properties.PopupWidth = 300
        UcReserva1.cboLugarResidencia.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboLugarResidencia.Properties.AutoSearchColumnIndex = 1
        UcReserva1.RepositoryItemLookUpEdit2.DataSource = tbLugarR

        ' Comunidades
        tbComunidad = vMaestros.Get_Comunidades()
        UcReserva1.cboComunidad.Properties.DataSource = tbComunidad
        UcReserva1.cboComunidad.Properties.DisplayMember = "desComunidad"
        UcReserva1.cboComunidad.Properties.ValueMember = "codComunidad"
        UcReserva1.cboComunidad.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("codComunidad", 20, "Lugar"))
        UcReserva1.cboComunidad.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("desComunidad", 200, "Descripción"))
        UcReserva1.cboComunidad.Properties.BestFit()
        UcReserva1.cboComunidad.Properties.PopupWidth = 300
        UcReserva1.cboComunidad.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboComunidad.Properties.AutoSearchColumnIndex = 1

        ' cargo la prioridad
        Dim tblPrioridad As New DataTable()
        tblPrioridad.Columns.Add("codprioridad")
        tblPrioridad.Columns.Add("desprioridad")
        tblPrioridad.Rows.Add(New Object() {"1", "Muy Alta"})
        tblPrioridad.Rows.Add(New Object() {"2", "Alta"})
        tblPrioridad.Rows.Add(New Object() {"3", "Media"})
        tblPrioridad.Rows.Add(New Object() {"4", "Baja"})
        tblPrioridad.Rows.Add(New Object() {"5", "Muy baja"})
        UcReserva1.cboPrioridad.Properties.DataSource = tblPrioridad
        UcReserva1.cboPrioridad.Properties.DisplayMember = "desprioridad"
        UcReserva1.cboPrioridad.Properties.ValueMember = "codprioridad"
        UcReserva1.cboPrioridad.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("codprioridad", 15, "Estado"))
        UcReserva1.cboPrioridad.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("desprioridad", 60, "Descripcion"))
        UcReserva1.cboPrioridad.Properties.BestFit()
        UcReserva1.cboPrioridad.Properties.PopupWidth = 120
        UcReserva1.cboPrioridad.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboPrioridad.Properties.AutoSearchColumnIndex = 1

        ' cargo el estado
        tbEstado = vMaestros.Get_EstadoReserva()
        UcReserva1.cboEstado.Properties.DataSource = tbEstado
        UcReserva1.cboEstado.Properties.DisplayMember = "desEstadoReserva"
        UcReserva1.cboEstado.Properties.ValueMember = "codEstadoReserva"
        UcReserva1.cboEstado.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("codEstadoReserva", 15, "Estado"))
        UcReserva1.cboEstado.Properties.Columns.Add(New DevExpress.XtraEditors.Controls.LookUpColumnInfo("desEstadoReserva", 60, "Descripcion"))
        UcReserva1.cboEstado.Properties.BestFit()
        UcReserva1.cboEstado.Properties.PopupWidth = 120
        UcReserva1.cboEstado.Properties.SearchMode = SearchMode.AutoComplete
        UcReserva1.cboEstado.Properties.AutoSearchColumnIndex = 1
        UcReserva1.gGLENroDocumentoId.Properties.DataSource = TCentroCosto.pr_Select_TCentroCosto("")
        UcReserva1.gGLENroDocumentoId.Properties.View.BestFitColumns()
    End Sub

    Private Sub CargarLista()
        ' cargo la grilla con el detalle
        UcReserva1.GridControl1.DataSource = vReservaBL.ListarReserva("")
        UcReserva1.GridControl1.Focus()
    End Sub

    Private Sub CambioRegistro()
        If UcReserva1.GridView1.RowCount > 0 Then
            InicializarBoton(False)
            EstadoCajas(True)
            nopc = 0
            Dim Rows As New ArrayList()
            Rows.Add(UcReserva1.GridView1.GetDataRow(UcReserva1.GridView1.GetSelectedRows()(0)))
            Dim Row As DataRow = CType(Rows(0), DataRow)
            If Not Row Is Nothing Then
                CargarCajas(Row("codReserva"))
            End If
        Else
            LimpiarCajas()
        End If
    End Sub

    Private Sub EstadoCajas(ByVal lFlag As Boolean)
        UcReserva1.txtCodReserva.Properties.ReadOnly = True
        UcReserva1.cboFchReserva.Properties.ReadOnly = lFlag
        UcReserva1.cboTipoPasajero.Properties.ReadOnly = lFlag
        UcReserva1.cboFchViaje.Properties.ReadOnly = lFlag
        UcReserva1.cboNomContacto.Properties.ReadOnly = lFlag
        UcReserva1.cboFchRetorno.Properties.ReadOnly = lFlag
        UcReserva1.txtNroDocumentoId.Properties.ReadOnly = lFlag
        UcReserva1.txtCodPasajero.Properties.ReadOnly = True
        UcReserva1.txtTlfPasajero.Properties.ReadOnly = lFlag
        UcReserva1.txtAppPasajero.Properties.ReadOnly = lFlag
        UcReserva1.txtRpcPasajero.Properties.ReadOnly = lFlag
        UcReserva1.txtApmPasajero.Properties.ReadOnly = lFlag
        UcReserva1.txtNacionalidad.Properties.ReadOnly = lFlag
        UcReserva1.txtNomPasajero.Properties.ReadOnly = lFlag
        UcReserva1.cboMotivoViaje.Properties.ReadOnly = lFlag
        UcReserva1.cboAnalisis.Properties.ReadOnly = lFlag
        UcReserva1.cboComunidad.Properties.ReadOnly = lFlag
        UcReserva1.txtMailPasajero.Properties.ReadOnly = lFlag
        UcReserva1.cboCosto.Properties.ReadOnly = lFlag
        UcReserva1.cboPrioridad.Properties.ReadOnly = lFlag
        UcReserva1.txtPctCentroCosto.Properties.ReadOnly = lFlag
        UcReserva1.cboCosto2.Properties.ReadOnly = lFlag
        UcReserva1.cboLugarReserva.Properties.ReadOnly = lFlag
        UcReserva1.txtPsoPasajero.Properties.ReadOnly = lFlag
        UcReserva1.cboEstado.Properties.ReadOnly = True
        UcReserva1.txtPsoEquipaje.Properties.ReadOnly = lFlag
        UcReserva1.txtNroBoleta.Properties.ReadOnly = lFlag
        UcReserva1.cboLugarResidencia.Properties.ReadOnly = lFlag
        UcReserva1.txtObservacion.Properties.ReadOnly = lFlag
        UcReserva1.chkAsumeMarsa.Properties.ReadOnly = lFlag
        UcReserva1.chkExamen.Properties.ReadOnly = lFlag
        UcReserva1.chkPermiso.Properties.ReadOnly = lFlag
        UcReserva1.chkPrestamo.Properties.ReadOnly = lFlag
        UcReserva1.chkSctrPension.Properties.ReadOnly = lFlag
        UcReserva1.chkSctrSalud.Properties.ReadOnly = lFlag
        UcReserva1.chkReservaRetorno.Properties.ReadOnly = lFlag
        UcReserva1.gGLENroDocumentoId.Properties.ReadOnly = lFlag
        UcReserva1.chkFlgNew.Properties.ReadOnly = lFlag
        UcReserva1.chkFlgTra.Properties.ReadOnly = lFlag
    End Sub

    Private Sub LimpiarCajas()
        UcReserva1.txtCodReserva.Text = 0
        UcReserva1.cboFchReserva.Text = Date.Today
        UcReserva1.cboTipoPasajero.EditValue = ""
        UcReserva1.cboFchViaje.Text = Date.Today
        UcReserva1.cboNomContacto.EditValue = ""
        UcReserva1.cboFchRetorno.Text = Date.Today
        UcReserva1.txtNroDocumentoId.Text = ""
        UcReserva1.gGLENroDocumentoId.EditValue = " "
        UcReserva1.txtCodPasajero.Text = 0
        UcReserva1.txtTlfPasajero.Text = ""
        UcReserva1.txtAppPasajero.Text = ""
        UcReserva1.txtRpcPasajero.Text = ""
        UcReserva1.txtApmPasajero.Text = ""
        UcReserva1.txtNacionalidad.Text = ""
        UcReserva1.txtNomPasajero.Text = ""
        UcReserva1.cboMotivoViaje.EditValue = ""
        UcReserva1.cboAnalisis.EditValue = ""
        UcReserva1.cboComunidad.EditValue = ""
        UcReserva1.txtMailPasajero.Text = ""
        UcReserva1.cboCosto.EditValue = ""
        UcReserva1.cboPrioridad.EditValue = ""
        UcReserva1.txtPctCentroCosto.Text = 100
        UcReserva1.cboCosto2.EditValue = ""
        UcReserva1.cboLugarReserva.EditValue = ""
        UcReserva1.cboLugarResidencia.EditValue = ""
        UcReserva1.txtPsoPasajero.Text = 0
        UcReserva1.cboEstado.EditValue = ""
        UcReserva1.txtPsoEquipaje.Text = 10
        UcReserva1.txtNroBoleta.Text = ""
        UcReserva1.txtObservacion.Text = ""
        UcReserva1.chkAsumeMarsa.Checked = False
        UcReserva1.chkExamen.Checked = False
        UcReserva1.chkPermiso.Checked = False
        UcReserva1.chkPrestamo.Checked = False
        UcReserva1.chkSctrPension.Checked = False
        UcReserva1.chkSctrSalud.Checked = False
        UcReserva1.chkReservaRetorno.EditValue = False
        UcReserva1.chkFlgNew.EditValue = False
        UcReserva1.chkFlgTra.EditValue = False
    End Sub

    Private Sub CargarCajas(ByVal pCod As Integer)
        vReservaBE = vReservaBL.TraerReserva(pCod)
        mPasajeroBE = mPasajeroBL.TraerPasajero(vReservaBE.CodPasajero)
        UcReserva1.txtCodReserva.Text = vReservaBE.CodReserva
        UcReserva1.cboFchReserva.EditValue = vReservaBE.FchReserva
        UcReserva1.cboTipoPasajero.EditValue = vReservaBE.TipPasajero
        UcReserva1.cboFchViaje.EditValue = vReservaBE.FchViaje
        UcReserva1.cboNomContacto.EditValue = vReservaBE.NomContacto
        UcReserva1.cboFchRetorno.EditValue = vReservaBE.FchRetorno
        UcReserva1.txtNroDocumentoId.Text = mPasajeroBE.NroDocumentoId
        UcReserva1.txtCodPasajero.Text = vReservaBE.CodPasajero
        UcReserva1.txtTlfPasajero.Text = mPasajeroBE.TlfPasajero
        UcReserva1.txtAppPasajero.Text = mPasajeroBE.AppPasajero
        UcReserva1.txtRpcPasajero.Text = mPasajeroBE.RpcPasajero
        UcReserva1.txtApmPasajero.Text = mPasajeroBE.ApmPasajero
        UcReserva1.txtNacionalidad.Text = mPasajeroBE.NacionalidadPasajero
        UcReserva1.txtNomPasajero.Text = mPasajeroBE.NomPasajero
        UcReserva1.cboAnalisis.EditValue = vReservaBE.CodAnalisis
        UcReserva1.cboComunidad.EditValue = vReservaBE.CodComunidad
        UcReserva1.cboMotivoViaje.EditValue = vReservaBE.MotivoViaje
        UcReserva1.txtMailPasajero.Text = mPasajeroBE.MailPasajero
        UcReserva1.cboCosto.EditValue = vReservaBE.CodCentroCosto
        UcReserva1.cboPrioridad.EditValue = vReservaBE.NroPrioridad
        UcReserva1.txtPctCentroCosto.Text = vReservaBE.PctCentroCosto
        UcReserva1.cboCosto2.EditValue = vReservaBE.CodCentroCosto2
        UcReserva1.cboLugarReserva.EditValue = vReservaBE.CodLugarReserva
        UcReserva1.cboLugarResidencia.EditValue = mPasajeroBE.CodLugarResidencia
        UcReserva1.txtPsoPasajero.Text = vReservaBE.PsoPasajero
        UcReserva1.cboEstado.EditValue = vReservaBE.EstadoReserva
        UcReserva1.txtPsoEquipaje.Text = vReservaBE.PsoEquipajePasajero
        UcReserva1.txtNroBoleta.Text = vReservaBE.NroBoleta
        UcReserva1.txtObservacion.Text = vReservaBE.ObsReserva
        UcReserva1.chkAsumeMarsa.EditValue = vReservaBE.FlgAsumeMarsa
        UcReserva1.chkExamen.EditValue = vReservaBE.FlgExamenActitud
        UcReserva1.chkPermiso.EditValue = vReservaBE.FlgPermiso
        UcReserva1.chkPrestamo.EditValue = vReservaBE.FlgPrestamo
        UcReserva1.chkSctrPension.EditValue = vReservaBE.FlgSctrPension
        UcReserva1.chkSctrSalud.EditValue = vReservaBE.FlgSctrSalud
        UcReserva1.chkReservaRetorno.EditValue = vReservaBE.FlgResRetorno
        UcReserva1.chkFlgNew.EditValue = vReservaBE.FlgNew
        UcReserva1.chkFlgTra.EditValue = vReservaBE.FlgResPasajero
        UcReserva1.LCDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
        UcReserva1.LEGridDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
    End Sub

    Private Sub InicializarBoton(ByVal lFlag As Boolean)
        BarBtnAgregar.Enabled = Not lFlag
        BarBtnModificar.Enabled = Not lFlag
        BarBtnEliminar.Enabled = Not lFlag
        BarBtnImprimir.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
        BarBtnRefresh.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
        BarBtnCancelar.Enabled = lFlag
        BarBtnGrabar.Enabled = lFlag
    End Sub

    Private Sub cmdclickorigen(ByVal sender As Object, ByVal e As System.EventArgs)
        ' para traer los codigos de los combobox
        stippas = UcReserva1.cboTipoPasajero.EditValue
        scodanl = UcReserva1.cboAnalisis.EditValue
        scenco1 = UcReserva1.cboCosto.EditValue
        snropri = UcReserva1.cboPrioridad.EditValue
        scenco2 = UcReserva1.cboCosto2.EditValue
        slugres = UcReserva1.cboLugarReserva.EditValue
        sestres = UcReserva1.cboEstado.EditValue
    End Sub

    Private Sub cmdvalidDni(ByVal sender As Object, ByVal e As System.EventArgs)
        ' busco el numero de dni y si existe muestro los datos sino se crea
        If nopc = 0 Then
            Return
        End If
        Dim ncod As Integer = mPasajeroBL.TraerCodigo(UcReserva1.txtNroDocumentoId.Text.Trim)
        mPasajeroBE = mPasajeroBL.TraerPasajero(ncod)
        If mPasajeroBE.CodPasajero > 0 Then
            UcReserva1.txtCodPasajero.Text = mPasajeroBE.CodPasajero
            UcReserva1.txtNroDocumentoId.Text = mPasajeroBE.NroDocumentoId
            UcReserva1.txtAppPasajero.Text = mPasajeroBE.AppPasajero
            UcReserva1.txtApmPasajero.Text = mPasajeroBE.ApmPasajero
            UcReserva1.txtNomPasajero.Text = mPasajeroBE.NomPasajero
            UcReserva1.txtNacionalidad.Text = mPasajeroBE.NacionalidadPasajero
            UcReserva1.txtTlfPasajero.Text = mPasajeroBE.TlfPasajero
            UcReserva1.txtRpcPasajero.Text = mPasajeroBE.RpcPasajero
            UcReserva1.txtMailPasajero.Text = mPasajeroBE.MailPasajero
            UcReserva1.cboAnalisis.EditValue = mPasajeroBE.CodAnalisis
            UcReserva1.cboLugarResidencia.EditValue = mPasajeroBE.CodLugarResidencia
            If UcReserva1.chkFlgNew.EditValue Then
                UcReserva1.chkFlgNew.EditValue = False
                UcReserva1.txtNroDocumentoId.EditValue = mPasajeroBE.NroDocumentoId
            End If
        End If

        If UcReserva1.cboTipoPasajero.EditValue = "1" Then
            Dim _TCentroCostoVE As New T_CentroCostoTrabajadorVE
            Dim _TCentroCosto As New T_CentroCostoTrabajadorBL
            _TCentroCostoVE = _TCentroCosto.pr_RecuperarTrabajador(UcReserva1.txtNroDocumentoId.Text.Trim)
            If _TCentroCostoVE.apellidopaterno <> "" Then
                UcReserva1.txtAppPasajero.EditValue = _TCentroCostoVE.apellidopaterno
                UcReserva1.txtApmPasajero.EditValue = _TCentroCostoVE.apellidomaterno
                UcReserva1.txtNomPasajero.EditValue = _TCentroCostoVE.nombres
                UcReserva1.txtTlfPasajero.EditValue = _TCentroCostoVE.telefonovendor
                UcReserva1.txtRpcPasajero.EditValue = _TCentroCostoVE.telefonocelular
                UcReserva1.cboAnalisis.EditValue = _TCentroCostoVE.vendor & " "
                UcReserva1.cboCosto.EditValue = _TCentroCostoVE.centrocostos1.Trim
                UcReserva1.cboCosto2.EditValue = _TCentroCostoVE.centrocostos2.Trim
                If UcReserva1.chkFlgNew.EditValue Then
                    UcReserva1.chkFlgNew.EditValue = False
                    UcReserva1.gGLENroDocumentoId.EditValue = mPasajeroBE.NroDocumentoId
                End If
            Else
                UcReserva1.LCDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
                UcReserva1.LEGridDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
            End If
        End If
    End Sub
#End Region

    Private Sub RegistroNuevo()
        InicializarBoton(True)
        EstadoCajas(False)
        LimpiarCajas()
        UcReserva1.cboTipoPasajero.EditValue = ""
        UcReserva1.gGLENroDocumentoId.EditValue = ""
        UcReserva1.cboLugarReserva.EditValue = My.MySettings.Default("LugarDefault").ToString()
        UcReserva1.cboLugarReserva.Enabled = IIf(UcReserva1.cboLugarReserva.EditValue = "", True, False)
        UcReserva1.cboFchReserva.EditValue = Now.Date
        UcReserva1.cboFchReserva.Properties.ReadOnly = True
        UcReserva1.cboEstado.EditValue = "2"
        SLTitulo.Text = "Registro de Reservas (AGREGAR)"
        UcReserva1.txtCodReserva.Text = 0
        UcReserva1.txtNroDocumentoId.EditValue = ""
        UcReserva1.cboTipoPasajero.Focus()
        nopc = 1
    End Sub

    Private Sub RegistroModificar()
        If UcReserva1.cboEstado.EditValue = "1" Or UcReserva1.cboEstado.EditValue = "2" Then
            InicializarBoton(True)
            EstadoCajas(False)
            If UcReserva1.cboTipoPasajero.EditValue = "V" Then
                UcReserva1.cboTipoPasajero.Properties.ReadOnly = False
                UcReserva1.txtNroDocumentoId.Properties.ReadOnly = False
            Else
                UcReserva1.cboTipoPasajero.Properties.ReadOnly = True
                UcReserva1.txtNroDocumentoId.Properties.ReadOnly = True
            End If
            UcReserva1.txtNroDocumentoId.Properties.ReadOnly = True
            UcReserva1.txtApmPasajero.Properties.ReadOnly = IIf(UcReserva1.cboTipoPasajero.EditValue = "1", True, False)
            UcReserva1.txtAppPasajero.Properties.ReadOnly = IIf(UcReserva1.cboTipoPasajero.EditValue = "1", True, False)
            UcReserva1.txtNomPasajero.Properties.ReadOnly = IIf(UcReserva1.cboTipoPasajero.EditValue = "1", True, False)
            SLTitulo.Text = "Registro de Reservas (MODIFICAR)"
            nopc = 2
        Else
            MsgBox("La reserva no puede modificarse por estar ya Programada", MsgBoxStyle.Information, Text)
        End If
    End Sub

    Private Sub RegistroDardeBaja()
        If UcReserva1.cboEstado.EditValue = "1" Or UcReserva1.cboEstado.EditValue = "2" Then
            If MsgBox("¿Está seguro de eliminar el registro?", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Desición") = MsgBoxResult.Yes Then
                Dim lFlgOka As Boolean
                lFlgOka = vReservaBL.EliminarReserva(UcReserva1.txtCodReserva.Text)
                If lFlgOka = True Then
                    If UcReserva1.cboTipoPasajero.EditValue = "V" Then
                        If mPasajeroBL.EliminarPasajero(CType(UcReserva1.txtCodPasajero.EditValue, Integer)) Then

                        End If
                    End If
                    MsgBox("La eliminación de la reserva de vuelo se realizó con éxito...", MsgBoxStyle.Information, "Proceso éxitoso")
                Else
                    MsgBox("Ha ocurrido un error al tratar de eliminar la reserva de vuelo...", MsgBoxStyle.Critical, "Proceso con problemas")
                End If
                CargarLista()
            End If
        Else
            MsgBox("La reserva no puede ser eliminada por estar ya Programada", MsgBoxStyle.Information, Text)
        End If

    End Sub

    Private Sub RegistroGrabar()
        If UcReserva1.DxValidationProvider1.Validate Then
            mPasajeroBE.CodPasajero = UcReserva1.txtCodPasajero.Text
            mPasajeroBE.NroDocumentoId = UcReserva1.txtNroDocumentoId.Text
            mPasajeroBE.AppPasajero = UcReserva1.txtAppPasajero.Text
            mPasajeroBE.ApmPasajero = UcReserva1.txtApmPasajero.Text
            mPasajeroBE.NomPasajero = UcReserva1.txtNomPasajero.Text
            mPasajeroBE.NacionalidadPasajero = UcReserva1.txtNacionalidad.Text
            mPasajeroBE.TlfPasajero = UcReserva1.txtTlfPasajero.Text
            mPasajeroBE.RpcPasajero = UcReserva1.txtRpcPasajero.Text
            mPasajeroBE.MailPasajero = UcReserva1.txtMailPasajero.Text
            mPasajeroBE.CodAnalisis = UcReserva1.cboAnalisis.EditValue
            mPasajeroBE.CodLugarResidencia = UcReserva1.cboLugarResidencia.EditValue
            If mPasajeroBE.CodPasajero = 0 Then
                'si el pasajero no existe lo creo y verifico cual es su codigo                
                mPasajeroBL.CrearPasajero(mPasajeroBE)
                UcReserva1.txtCodPasajero.Text = mPasajeroBL.TraerCodigo(UcReserva1.txtNroDocumentoId.Text)
            Else
                mPasajeroBL.ModificarPasajero(mPasajeroBE)
            End If
            vReservaBE.CodReserva = UcReserva1.txtCodReserva.Text
            vReservaBE.FchReserva = UcReserva1.cboFchReserva.Text
            vReservaBE.TipPasajero = UcReserva1.cboTipoPasajero.EditValue
            vReservaBE.NomContacto = UcReserva1.cboNomContacto.EditValue
            vReservaBE.CodPasajero = UcReserva1.txtCodPasajero.Text
            vReservaBE.CodCentroCosto = UcReserva1.cboCosto.EditValue
            vReservaBE.PctCentroCosto = UcReserva1.txtPctCentroCosto.Text
            vReservaBE.CodCentroCosto2 = UcReserva1.cboCosto2.EditValue
            vReservaBE.PsoPasajero = UcReserva1.txtPsoPasajero.Text
            vReservaBE.PsoEquipajePasajero = UcReserva1.txtPsoEquipaje.Text
            vReservaBE.FchViaje = UcReserva1.cboFchViaje.Text
            vReservaBE.FchRetorno = UcReserva1.cboFchRetorno.Text
            vReservaBE.MotivoViaje = UcReserva1.cboMotivoViaje.EditValue
            vReservaBE.FlgRequisitos = UcReserva1.chkPermiso.Checked
            vReservaBE.FlgPermiso = UcReserva1.chkPermiso.Checked
            vReservaBE.NroBoleta = UcReserva1.txtNroBoleta.Text
            vReservaBE.NroPrioridad = UcReserva1.cboPrioridad.EditValue
            vReservaBE.CodAnalisis = UcReserva1.cboAnalisis.EditValue
            vReservaBE.CodComunidad = UcReserva1.cboComunidad.EditValue
            vReservaBE.ObsReserva = UcReserva1.txtObservacion.Text
            vReservaBE.CodLugarReserva = UcReserva1.cboLugarReserva.EditValue
            vReservaBE.EstadoReserva = UcReserva1.cboEstado.EditValue
            vReservaBE.FlgResRetorno = UcReserva1.chkReservaRetorno.EditValue
            vReservaBE.FlgNew = UcReserva1.chkFlgNew.EditValue
            vReservaBE.FlgResPasajero = UcReserva1.chkFlgTra.EditValue
            Dim lFlgOka As Boolean
            Select Case nopc
                Case 1
                    lFlgOka = vReservaBL.CrearReserva(vReservaBE)
                Case 2
                    lFlgOka = vReservaBL.ModificarReserva(vReservaBE)
            End Select
            If lFlgOka = True Then
                MsgBox("La actualización se realizó con éxito...", MsgBoxStyle.Information, "Proceso éxitoso")
                SLTitulo.Text = "Registro de Reservas"
            Else
                MsgBox("Ha ocurrido un error...", MsgBoxStyle.Critical, "Proceso con problemas")
            End If
            InicializarBoton(False)
            EstadoCajas(True)
            CargarLista()
        Else
            UcReserva1.cboTipoPasajero.Focus()
        End If
    End Sub

    Private Sub RegistroCancelar()
        CambioRegistro()
        InicializarBoton(False)
        EstadoCajas(True)
        SLTitulo.Text = "Registro de Reservas"
        UcReserva1.DxValidationProvider1.Validate()
    End Sub

    Private Function validarDni(ByVal p_codigoidentificacion As String) As Boolean
        ' busco el numero de dni y si existe muestro los datos sino se crea
        If nopc = 0 Then
            Return True
        End If
        UcReserva1.txtNroDocumentoId.Text = p_codigoidentificacion
        Dim ncod As Integer
        ncod = mPasajeroBL.TraerCodigo(p_codigoidentificacion)
        mPasajeroBE = mPasajeroBL.TraerPasajero(ncod)
        If mPasajeroBE.CodPasajero > 0 Then
            UcReserva1.txtCodPasajero.Text = mPasajeroBE.CodPasajero
            UcReserva1.txtNroDocumentoId.Text = mPasajeroBE.NroDocumentoId
            UcReserva1.txtAppPasajero.Text = mPasajeroBE.AppPasajero
            UcReserva1.txtApmPasajero.Text = mPasajeroBE.ApmPasajero
            UcReserva1.txtNomPasajero.Text = mPasajeroBE.NomPasajero
            UcReserva1.txtNacionalidad.Text = mPasajeroBE.NacionalidadPasajero
            UcReserva1.txtTlfPasajero.Text = mPasajeroBE.TlfPasajero
            UcReserva1.txtRpcPasajero.Text = mPasajeroBE.RpcPasajero
            UcReserva1.txtMailPasajero.Text = mPasajeroBE.MailPasajero
            UcReserva1.cboAnalisis.EditValue = mPasajeroBE.CodAnalisis
            UcReserva1.cboLugarResidencia.EditValue = mPasajeroBE.CodLugarResidencia
            If UcReserva1.chkFlgNew.EditValue Then
                UcReserva1.chkFlgNew.EditValue = False
            End If
        End If

        If UcReserva1.cboTipoPasajero.EditValue = "1" Then
            Dim _TCentroCostoVE As New T_CentroCostoTrabajadorVE
            Dim _TCentroCosto As New T_CentroCostoTrabajadorBL
            _TCentroCostoVE = _TCentroCosto.pr_RecuperarTrabajador(p_codigoidentificacion)
            If _TCentroCostoVE.apellidopaterno <> "" Then
                UcReserva1.txtAppPasajero.EditValue = _TCentroCostoVE.apellidopaterno
                UcReserva1.txtApmPasajero.EditValue = _TCentroCostoVE.apellidomaterno
                UcReserva1.txtNomPasajero.EditValue = _TCentroCostoVE.nombres
                UcReserva1.txtTlfPasajero.EditValue = _TCentroCostoVE.telefonovendor
                UcReserva1.txtRpcPasajero.EditValue = _TCentroCostoVE.telefonocelular
                UcReserva1.cboAnalisis.EditValue = _TCentroCostoVE.vendor & " "
                UcReserva1.cboCosto.EditValue = _TCentroCostoVE.centrocostos1.Trim
                UcReserva1.cboCosto2.EditValue = _TCentroCostoVE.centrocostos2.Trim
                If UcReserva1.chkFlgNew.EditValue Then
                    UcReserva1.chkFlgNew.EditValue = False
                End If
            End If
        End If
        Return True
    End Function

    Private Sub ElegirDNI(sender As System.Object, e As System.EventArgs)
        Dim edit As DevExpress.XtraEditors.GridLookUpEdit = CType(sender, DevExpress.XtraEditors.GridLookUpEdit)
        Dim row As DataRow = edit.Properties.View.GetDataRow(edit.Properties.View.FocusedRowHandle)
        'LimpiarCajas()
        If Not row Is Nothing Then
            If validarDni(row("codigoidentificacion")) Then
            End If
        End If
    End Sub

    Private Sub ValidarTipoPasajero(sender As System.Object, e As System.EventArgs)
        If nopc = 0 Then
            Return
        End If
        Dim edit As LookUpEdit = TryCast(sender, LookUpEdit)
        If IsDBNull(edit.EditValue) Then
        Else
            Dim sTipo As String = TryCast(edit.EditValue, String)
            If sTipo = "1" Then
                UcReserva1.LCDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
                UcReserva1.LEGridDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
            Else
                If sTipo = "V" Then
                    'Value.Substring(Value.Length – Length, Length)
                    Dim valor As String = "00000" & Trim(CType(mPasajeroBL.pr_NumeroSiguiente, String))
                    UcReserva1.txtNroDocumentoId.EditValue = "PRV" & valor.Substring(valor.Length - 5, 5)
                    UcReserva1.txtNroDocumentoId.Properties.ReadOnly = True
                    UcReserva1.chkFlgNew.Properties.ReadOnly = True
                    UcReserva1.LCDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
                    UcReserva1.LEGridDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
                Else
                    UcReserva1.LCDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
                    UcReserva1.LEGridDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
                    UcReserva1.txtNroDocumentoId.Properties.ReadOnly = False
                    UcReserva1.chkFlgNew.Properties.ReadOnly = False
                    UcReserva1.LCDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always
                    UcReserva1.LEGridDNI.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never
                End If
            End If
        End If
    End Sub

    Private Sub cmdclickTipoPasajero(ByVal sender As Object, ByVal e As System.EventArgs)
        UcReserva1.cboPrioridad.EditValue = vReservaBL.CargarPrioridad(UcReserva1.cboTipoPasajero.EditValue)
        UcReserva1.cboPrioridad.Refresh()
    End Sub
End Class